﻿//++
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
// Module Name:
//
//  PresenceObtainedEventArgs.cs
//    
// Abstract:
//
//  Event arguments used when a presence lookup has completed.
//
//--

using System.ComponentModel;

namespace Microsoft.EnhancedReminders.Dispatcher
{
    /// <summary>
    /// Event arguments used when a presence lookup has completed.
    /// </summary>
    public class PresenceObtainedEventArgs : AsyncCompletedEventArgs
    {
        /// <summary>
        /// ctor. 
        /// </summary>
        /// <param name="notification">NotificationItem that a presence query is for</param>
        /// <param name="sipAddress">SIP Address of the recipient of the notification</param>
        public PresenceObtainedEventArgs(NotificationItem notification, string sipAddress)
            : base(null /* error */, false, null /* userState*/)
        {
            Notification = notification;
            SipAddress = sipAddress;
            Presence = PresenceStates.Unknown;
        }

        /// <summary>
        /// String representing the current presence of the target user
        /// </summary>
        public PresenceStates Presence { get; set; }

        /// <summary>
        /// The desk phone number for a user
        /// </summary>
        public string DeskPhone { get; set; }

        /// <summary>
        /// The mobile phone number for a user
        /// </summary>
        public string MobilePhone { get; set; }

        /// <summary>
        /// The home phone number for a user
        /// </summary>
        public string HomePhone { get; set; }

        /// <summary>
        /// The "other" phone number for a user
        /// </summary>
        public string OtherPhone { get; set; }

        /// <summary>
        /// The corporate SIP Address of the user.
        /// </summary>
        public string SipAddress { get; set; }

        /// <summary>
        /// The NotificationItem that we are delivering.
        /// </summary>
        public NotificationItem Notification { get; set; }
    }
}
